package com.example.controller;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/user")
@RestController
public class UserController {

    @PostMapping("/login") // 只处理POST请求
    public Boolean login(String userName, String password, HttpSession session) {
        // 1. 参数校验：使用Spring的StringUtils检查字符串是否为空
        if (!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)) {
            return false;
        }

        // 2. 验证密码是否正确：实际项目中应该查询数据库
        // 这里暂时硬编码，写死账号密码
        if ("admin".equals(userName) && "admin".equals(password)) {
            // 3. 密码验证成功，将用户名存储在Session中
            session.setAttribute("loginUserName", userName);
            return true;
        }

        return false;
    }

    @GetMapping("/getLoginUser") // 只处理GET请求
    public String getLoginUser(HttpServletRequest request) {
        // 获取Session，如果不存在则不创建新Session
        HttpSession session = request.getSession(false);
        if (session == null) {
            return ""; // 没有Session表示未登录
        }

        // 从Session中获取登录用户名
        return (String) session.getAttribute("loginUserName");
    }
}